home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
commodore-users-of-norman
/
CUON_25_(10-1984).d64
/
bonk barrels_64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
4KB
|
121 lines
100 PRINT"[147][159] REDEFINING CHARACTER SET"
110 GOTO390
120 REM MAN JUMPS
130 POKEE%,39
140 FOR X=1TOZ%:GOSUB250:IF PEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
145 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
147 IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
150 GOSUB 310:NEXTX
160 POKEE%,37
170 POKES,P
180 P=P+3
190 POKEE%,38
200 FORX=1TOZ%:GOSUB250:IF PEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
203 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
205 IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
210 GOSUB 310:NEXTX
220 IFPEEK(E%-40)=LLTHEN 910
230 POKEE%,32:E%=E%-40:POKEE%,38:POKES,0:POKEE%,32:E%=E%-40:POKEE%,38:RETURN
240 REM MOVE BARRELS
250 POKES+1,O
260 POKEB%(X),C
270 IFPEEK(B%(X)+I%)=WTHENB%(X)=B%(X)+D(X)
280 IFPEEK(B%(X))=WTHENB%(X)=B%(X)-T%*D(X)
290 IFPEEK(B%(X)+I%)<>WTHENB%(X)=B%(X)+I%
300 RETURN
310 POKEB%(X),LL
320 IFB%(X)>JTHENGOSUB350
330 RETURN
340 REM RESET BARRELS
350 FORX=1TOZ%:POKEB%(X),C:B%(X)=SR+INT(RND(X)*T%):NEXTX
360 REM SCORE
370 PRINT"SCORE [157][157][157][157]"SC;" [157][157][157][157][157][157]";
380 FORQ=3TOA+1STEP-1:PRINT"[146]%";:NEXT:PRINT"":RETURN
390 POKE53281,0:POKE53280,6
400 POKE56,48:CLR
410 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251
420 BL$="[158] "
430 AL$="[146][156]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
440 FORI=0TO1023:POKEI+12288,PEEK(I+53248):POKEI+13312,PEEK(I+53248):NEXT
450 POKE1,PEEK(1)OR4
460 POKE56334,PEEK(56334)OR1
470 POKE53272,(PEEK(53272)AND240)+12
480 FORI=12544TO12544+8*8-1:READA:POKEI,A:NEXT:GOSUB1080
490 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,108,206,174,234,230,108,56:REM BARREL
500 DATA56,108,246,250,134,222,108,56:REM BARREL
510 DATA255,153,189,153,255,0,0,0:REM BEAM
520 DATA56,56,16,56,84,16,56,40:REM MAN NORMAL
530 DATA186,186,84,56,16,16,56,40,0,0,0,56,56,16,124,170
540 SR=1025:K=55296-SR+1
550 J=SR+820:V=54296:S=54272:FORI=STOV:POKEI,0:NEXTI
560 POKEV,15:POKES+5,130:POKES+6,72
570 SR=1025:K=55296-SR+1
580 PRINT"[147]":A=0:SC=0:Z%=4
590 REM SET UP SCREEN
600 PRINT"[147]";:BL=80
610 FORI=1TO10:PRINTBL$;AL$;:NEXT:PRINTBL$;BL$;""
620 X=SR+39:POKES+4,33:POKES+24,15
630 FORB=1TOBL
640 R=INT(RND(X)*908)
650 POKEX+R,32:POKEX+R+K,7:POKES+1,B+10:NEXT:POKES+4,0
660 POKES+4,17:FORG=-1TO20
670 POKEX+G*40,36:POKES+1,50+(G*2):POKEX+G*40+K,5
680 POKEX+39+(G*40),36:POKES+1,0:POKEX+39+(G*40)+K,5:NEXTG:POKES+4,0
690 REM PREP FOR LOOP
700 E%=J:D(1)=1:D(2)=-1:D(3)=1:D(4)=-1:L=1:LM=10:RM=18:UP=5:BM=4:O=0
710 W=36:C=32:KB=197:T%=38:I%=40:LL=34:D=37:Z=245:P=128:TT%=1:TH%=3:GOSUB350
720 REM MAIN GAME LOOP
730 FOR X=1TOZ%:GOSUB250:IFPEEK(B%(X))>36ANDPEEK(B%(X))<40 THEN910
735 IF PEEK(B%(X)+D(X))>36ANDPEEK(B%(X)+D(X))<40THEN910
737 REM IF PEEK(B%(X)-1)>36ANDPEEK(B%(X)-1)<40THEN910
740 GOSUB 310:NEXTX
750 IFPEEK(E%)=LLTHENE%=E%+40:POKEE%+K,7:POKEE%+I%,36:POKEE%+I%+K,4:GOTO910
760 IFPEEK(E%-I%)=LLTHEN910
770 IFPEEK(E%+I%)=LLTHENPOKEE%,C:E%=E%+80:GOTO910
780 IFLL=34THENLL=35:GOTO800
790 LL=34
800 POKEE%,C
810 IFPEEK(KB)=LMTHENIFPEEK(E%-L)<>WTHENE%=E%-L:POKEE%,D:YG=-2:GOTO850
820 IFPEEK(KB)=RMTHENIFPEEK(E%+L)<>WTHENE%=E%+L:POKEE%,D:YG=2:GOTO850
830 IFPEEK(KB)=BMTHENIFPEEK(E%-I%)=WTHENPOKEE%-I%,C:SC=SC-5:P=P-10
840 IFPEEK(KB)=UPTHENIFPEEK(E%-I%)<>WTHENGOSUB130:SC=SC+L+L:P=P+3:POKEE%,D
850 IFP>ZTHENP=128
860 POKEE%,D:POKES+4,17:POKES+1,40
870 IF E%<SRTHENE%=J:TT%=TT%+L:GOSUB370:IFSC>35THENZ%=RND(X)*4+1
880 IFTT%>TH%THENGOTO600
890 GOTO730
900 REM LOSE MAN
910 POKES+4,129:N=15:POKES,39:POKES+1,09:FORQ=1TO4:POKEB%(Q),32:NEXT
920 POKEE%,38:POKEE%-40,34:GOSUB1190:POKEE%,37:GOSUB1190:POKEE%,39:GOSUB1190
930 POKEE%-40,194:POKEE%,35:GOSUB1190:POKEE%+1,173:POKEE%-1,173:POKEE%+40,194
940 POKEE%-39,206:POKEE%-41,205
950 POKEE%+41,205:POKEE%+39,206:GOSUB1190
960 POKEE%-120,174:POKEE%-2,174:POKEE%+2,174:POKEE%+120,174:GOSUB1190
970 POKEE%-78,174
980 POKEE%-82,174:POKEE%+78,174:POKEE%+82,174:GOSUB1190
990 SC=SC-8:POKES+4,128:A=A+1:GOSUB370
1000 TT%=1:IFA<3GOTO600
1010 PRINT"[147]";
1015 POKE198,0:PRINT" GAME OVER"
1018 PRINT" SCORE= ";SC
1020 PRINT" HIT SPACE BAR TO PLAY AGAIN"
1030 PRINT" ANY OTHER KEY TO END"
1040 GETYY$:IFYY$=""THEN1040
1050 IF YY$<>" "THEN PRINT"[147]":END
1060 GOTO580
1070 REM
1080 PRINT"[147]":PRINTTAB(11)"*INSTRUCTIONS*":PRINT
1090 PRINTTAB(9)"A[146] MOVES MAN LEFT":PRINTTAB(9)"D[146] MOVES MAN RIGHT"
1100 PRINT:PRINTTAB(9)"F3[146] MOVES MAN UP 1 LEVEL"
1110 PRINTTAB(9)"F1[146] WILL BLAST SPACE ABOVE"
1120 PRINT:PRINTTAB(9)" **POINTS**"
1130 PRINT:PRINTTAB(9)"2 FOR EACH UP":PRINTTAB(8)"-5 FOR USING BLAST"
1140 PRINTTAB(8)"-8 FOR GETTING HIT"
1150 PRINT"":PRINTTAB(8)" PRESS SPACE BAR[159]"
1160 GETXX$:IFXX$=""THEN1160
1170 RETURN
1180 REM TIME AND SOUND FOR LOSE MAN ROUNTINE
1190 N=N-2:IFN<0THENN=0
1200 IFPEEK(E%)=38ORPEEK(E%)=39THENFORQ=1TO50:NEXT
1210 FORQ=1TO25:NEXT:RETURN